package belf.migrate.engine.admin.taskconf;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Job {
    private long jobId;
    /** Job对应的任务 */
    private Task task;
    /** 所有者 */
    private String owner;
    /** 创建时间 */
    private Long createTime;

    /** job执行的开始时间 */
    private Long startTime;
    /** job执行的结束时间。对于STREAM类型的任务，没有结束时间 */
    private Long endTime;

    /** 需要执行的任务对象名称。如建表任务，包含需要建哪些表；建视图，需要建哪些视图.
     * 如果没有定义missions(missions=null) ，则对所有对象进行执行。
     * 在mysql表中，定义为JSON类型存取
     */
    private List<String> missions;

    public Job(Task task, long jobId, Long startTime, Long endTime) {
        this.task = task;
        this.jobId = jobId;
        this.startTime = startTime;
        this.endTime = endTime;
    }
}
